{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "193adc3c",
   "metadata": {},
   "source": [
    "## Examining Factor Return Performance"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "29df3120",
   "metadata": {},
   "outputs": [],
   "source": [
    "import warnings"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "b38bed9a",
   "metadata": {},
   "outputs": [],
   "source": [
    "import alphalens\n",
    "import pandas as pd\n",
    "from alphalens.performance import (\n",
    "    compute_mean_returns_spread,\n",
    "    cumulative_returns,\n",
    "    factor_alpha_beta,\n",
    "    factor_cumulative_returns,\n",
    "    factor_returns,\n",
    "    mean_return_by_quantile,\n",
    ")\n",
    "from alphalens.utils import get_clean_factor_and_forward_returns\n",
    "from IPython.display import Markdown, display"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "2e90a036",
   "metadata": {},
   "outputs": [],
   "source": [
    "warnings.filterwarnings(\"ignore\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b21413a2",
   "metadata": {},
   "source": [
    "Load the mean reversion data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "2d032bdb",
   "metadata": {},
   "outputs": [],
   "source": [
    "mean_reversion = pd.read_pickle(\"mean_reversion.pickle\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6a7ea8d4",
   "metadata": {},
   "source": [
    "Construct a dataframe with symbols in the columns and dates in the rows for prices"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "63c25fea",
   "metadata": {},
   "outputs": [],
   "source": [
    "prices = pd.concat(\n",
    "    [df.to_frame(d) for d, df in mean_reversion.prices.dropna().items()], axis=1\n",
    ").T"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "59e1e230",
   "metadata": {},
   "source": [
    "Convert column names to strings"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "668c5f1d",
   "metadata": {},
   "outputs": [],
   "source": [
    "prices.columns = [col.symbol for col in prices.columns]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b5ca7ab4",
   "metadata": {},
   "source": [
    "Normalize Timestamp to midnight, preserving tz information"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "c90f969f",
   "metadata": {},
   "outputs": [],
   "source": [
    "prices.index = prices.index.normalize()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2a986eb2",
   "metadata": {},
   "source": [
    "Construct a dataframe with symbols in the columns and factor rank in the rows"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "91242aad",
   "metadata": {},
   "outputs": [],
   "source": [
    "factor_data = pd.concat(\n",
    "    [df.to_frame(d) for d, df in mean_reversion.factor_data.dropna().items()], axis=1\n",
    ").T"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "49669e6a",
   "metadata": {},
   "source": [
    "Convert column names to strings"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "35a29c88",
   "metadata": {},
   "outputs": [],
   "source": [
    "factor_data.columns = [col.symbol for col in factor_data.columns]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "97560445",
   "metadata": {},
   "source": [
    "Normalize Timestamp to midnight, preserving tz information"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "cd72d32d",
   "metadata": {},
   "outputs": [],
   "source": [
    "factor_data.index = factor_data.index.normalize()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ec659dff",
   "metadata": {},
   "source": [
    "Create a multiindex with date in level 0 and symbol in level 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "fae339c2",
   "metadata": {},
   "outputs": [],
   "source": [
    "factor_data = factor_data.stack()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cb7ba133",
   "metadata": {},
   "source": [
    "Rename the multiindexes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "d26ff34b",
   "metadata": {},
   "outputs": [],
   "source": [
    "factor_data.index.names = [\"date\", \"asset\"]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0c7b6452",
   "metadata": {},
   "source": [
    "Compile the forward returns, factor rank, and factor quantile using Alphalens"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "ca73db98",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Dropped 12.5% entries from factor data: 12.5% in forward returns computation and 0.0% in binning phase (set max_loss=0 to see potentially suppressed Exceptions).\n",
      "max_loss is 35.0%, not exceeded: OK!\n"
     ]
    }
   ],
   "source": [
    "alphalens_data = get_clean_factor_and_forward_returns(\n",
    "    factor=factor_data, prices=prices, periods=(5, 10, 21, 63)\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "41b8bd35",
   "metadata": {},
   "source": [
    "Calculate and display factor returns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "ffd8bb37",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>5D</th>\n",
       "      <th>10D</th>\n",
       "      <th>21D</th>\n",
       "      <th>63D</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2016-01-04 00:00:00+00:00</th>\n",
       "      <td>-0.016253</td>\n",
       "      <td>-0.027134</td>\n",
       "      <td>-0.013492</td>\n",
       "      <td>-0.015658</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-01-05 00:00:00+00:00</th>\n",
       "      <td>-0.016253</td>\n",
       "      <td>-0.027134</td>\n",
       "      <td>-0.013492</td>\n",
       "      <td>-0.015658</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-01-06 00:00:00+00:00</th>\n",
       "      <td>-0.016253</td>\n",
       "      <td>-0.027134</td>\n",
       "      <td>-0.013492</td>\n",
       "      <td>-0.015658</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-01-07 00:00:00+00:00</th>\n",
       "      <td>-0.016253</td>\n",
       "      <td>-0.027134</td>\n",
       "      <td>-0.026664</td>\n",
       "      <td>-0.015658</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-01-08 00:00:00+00:00</th>\n",
       "      <td>-0.016253</td>\n",
       "      <td>-0.026459</td>\n",
       "      <td>-0.026664</td>\n",
       "      <td>-0.011788</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-09-25 00:00:00+00:00</th>\n",
       "      <td>-0.003797</td>\n",
       "      <td>-0.001202</td>\n",
       "      <td>0.000069</td>\n",
       "      <td>0.000902</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-09-26 00:00:00+00:00</th>\n",
       "      <td>-0.003797</td>\n",
       "      <td>-0.001202</td>\n",
       "      <td>0.000069</td>\n",
       "      <td>-0.006470</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-09-27 00:00:00+00:00</th>\n",
       "      <td>-0.003797</td>\n",
       "      <td>-0.001202</td>\n",
       "      <td>0.000069</td>\n",
       "      <td>-0.006470</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-09-28 00:00:00+00:00</th>\n",
       "      <td>-0.003797</td>\n",
       "      <td>-0.001202</td>\n",
       "      <td>0.000069</td>\n",
       "      <td>-0.006470</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-09-29 00:00:00+00:00</th>\n",
       "      <td>-0.003797</td>\n",
       "      <td>-0.001202</td>\n",
       "      <td>0.009394</td>\n",
       "      <td>-0.006470</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>440 rows × 4 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                 5D       10D       21D       63D\n",
       "date                                                             \n",
       "2016-01-04 00:00:00+00:00 -0.016253 -0.027134 -0.013492 -0.015658\n",
       "2016-01-05 00:00:00+00:00 -0.016253 -0.027134 -0.013492 -0.015658\n",
       "2016-01-06 00:00:00+00:00 -0.016253 -0.027134 -0.013492 -0.015658\n",
       "2016-01-07 00:00:00+00:00 -0.016253 -0.027134 -0.026664 -0.015658\n",
       "2016-01-08 00:00:00+00:00 -0.016253 -0.026459 -0.026664 -0.011788\n",
       "...                             ...       ...       ...       ...\n",
       "2017-09-25 00:00:00+00:00 -0.003797 -0.001202  0.000069  0.000902\n",
       "2017-09-26 00:00:00+00:00 -0.003797 -0.001202  0.000069 -0.006470\n",
       "2017-09-27 00:00:00+00:00 -0.003797 -0.001202  0.000069 -0.006470\n",
       "2017-09-28 00:00:00+00:00 -0.003797 -0.001202  0.000069 -0.006470\n",
       "2017-09-29 00:00:00+00:00 -0.003797 -0.001202  0.009394 -0.006470\n",
       "\n",
       "[440 rows x 4 columns]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "returns = factor_returns(alphalens_data)\n",
    "display(returns)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6ec2e556",
   "metadata": {},
   "source": [
    "Calculate and display factor returns by asset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "d0240fb9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>5D</th>\n",
       "      <th>10D</th>\n",
       "      <th>21D</th>\n",
       "      <th>63D</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th>asset</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">2016-01-04 00:00:00+00:00</th>\n",
       "      <th>AAL</th>\n",
       "      <td>-0.000006</td>\n",
       "      <td>0.000078</td>\n",
       "      <td>0.000058</td>\n",
       "      <td>-0.000064</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>AAPL</th>\n",
       "      <td>-0.001374</td>\n",
       "      <td>-0.001751</td>\n",
       "      <td>-0.001797</td>\n",
       "      <td>0.001162</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ABBV</th>\n",
       "      <td>0.000862</td>\n",
       "      <td>0.000605</td>\n",
       "      <td>0.000744</td>\n",
       "      <td>-0.000370</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>AET</th>\n",
       "      <td>0.000211</td>\n",
       "      <td>0.000237</td>\n",
       "      <td>0.000316</td>\n",
       "      <td>0.000380</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>AGN</th>\n",
       "      <td>-0.000052</td>\n",
       "      <td>-0.000100</td>\n",
       "      <td>-0.000158</td>\n",
       "      <td>-0.000191</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">2017-09-29 00:00:00+00:00</th>\n",
       "      <th>ADP</th>\n",
       "      <td>-0.000008</td>\n",
       "      <td>-0.000008</td>\n",
       "      <td>-0.000008</td>\n",
       "      <td>-0.000008</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>COL</th>\n",
       "      <td>0.000130</td>\n",
       "      <td>0.000285</td>\n",
       "      <td>0.000417</td>\n",
       "      <td>0.000417</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BBY</th>\n",
       "      <td>0.000939</td>\n",
       "      <td>0.001407</td>\n",
       "      <td>0.001407</td>\n",
       "      <td>0.001407</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>EFX</th>\n",
       "      <td>0.000411</td>\n",
       "      <td>0.001081</td>\n",
       "      <td>0.000592</td>\n",
       "      <td>0.000444</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SBAC</th>\n",
       "      <td>0.000143</td>\n",
       "      <td>0.000635</td>\n",
       "      <td>0.000635</td>\n",
       "      <td>0.000635</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>43995 rows × 4 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                       5D       10D       21D       63D\n",
       "date                      asset                                        \n",
       "2016-01-04 00:00:00+00:00 AAL   -0.000006  0.000078  0.000058 -0.000064\n",
       "                          AAPL  -0.001374 -0.001751 -0.001797  0.001162\n",
       "                          ABBV   0.000862  0.000605  0.000744 -0.000370\n",
       "                          AET    0.000211  0.000237  0.000316  0.000380\n",
       "                          AGN   -0.000052 -0.000100 -0.000158 -0.000191\n",
       "...                                   ...       ...       ...       ...\n",
       "2017-09-29 00:00:00+00:00 ADP   -0.000008 -0.000008 -0.000008 -0.000008\n",
       "                          COL    0.000130  0.000285  0.000417  0.000417\n",
       "                          BBY    0.000939  0.001407  0.001407  0.001407\n",
       "                          EFX    0.000411  0.001081  0.000592  0.000444\n",
       "                          SBAC   0.000143  0.000635  0.000635  0.000635\n",
       "\n",
       "[43995 rows x 4 columns]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "returns = factor_returns(alphalens_data, by_asset=True)\n",
    "display(returns)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "86c7565d",
   "metadata": {},
   "source": [
    "Plot cumulative returns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "6e0f405f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Axes: xlabel='date'>"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGgCAYAAACABpytAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAACoMElEQVR4nOzdd3iUVfbA8e/MpPdeSQiBUEIJoUoHBbGhoq5d1LXhz7L2XXetu6vs2ta+drGXtWBHBaX3EnpLCCSk995m5v39cWcmmTDpPZzP8+SZ9r7v3IQyJ+eee65O0zQNIYQQQoheRN/TAxBCCCGEaEwCFCGEEEL0OhKgCCGEEKLXkQBFCCGEEL2OBChCCCGE6HUkQBFCCCFEryMBihBCCCF6HaeeHkB7mc1mMjMz8fb2RqfT9fRwhBBCCNEKmqZRVlZGREQEen3TeZI+G6BkZmYSFRXV08MQQgghRDukp6czYMCAJl/vswGKt7c3oL5BHx+fHh6NEEIIIVqjtLSUqKgo2+d4U/psgGKd1vHx8ZEARQghhOhjWirPkCJZIYQQQvQ6EqAIIYQQoteRAEUIIYQQvU6Ha1DWrFnD008/zfbt28nKyuLrr7/mwgsvbPL4devW8ec//5mDBw9SWVnJwIEDueWWW7j77rs7OpSTmM1mamtrO/26QrTE2dkZg8HQ08MQQog+q8MBSkVFBQkJCfzxj3/koosuavF4T09Pbr/9dsaMGYOnpyfr1q3jlltuwdPTk5tvvrmjw7Gpra0lNTUVs9ncadcUoi38/PwICwuTPj1CCNEOOk3TtE67mE7XYgbFkYsuughPT08++OCDVp9TWlqKr68vJSUlJ63i0TSNtLQ06urqWmwEI0Rn0zSNyspKcnNz8fPzIzw8vKeHJIQQvUZzn98N9fgy4507d7Jhwwb++c9/NntcTU0NNTU1tselpaVNHms0GqmsrCQiIgIPD49OG6sQreXu7g5Abm4uISEhMt0jhBBt1GOphQEDBuDq6sqECRO47bbbuPHGG5s9fsmSJfj6+tq+musiazKZAHBxcenUMQvRFtbguK6urodHIoQQfU+PBShr165l27ZtvPbaazz//PN88sknzR7/4IMPUlJSYvtKT09v8T1k7l/0JPn7J4QQ7ddjUzyDBg0CYPTo0eTk5PDYY49xxRVXNHm8q6srrq6u3TU8IYQQQvSgXlE9ajab7epLhBBCCHFq63CAUl5eTlJSEklJSQCkpqaSlJREWloaoKZmFi1aZDv+lVde4bvvvuPIkSMcOXKEt99+m2eeeYarr766o0Pp8zRN4+abbyYgIACdTmf7mZ6KYmJieP7551t9/LFjx7r1Z7Z06VL8/Py65b2EEL3Tu+tTOePZVWQUV/X0UPqlDk/xbNu2jTlz5tge33PPPQBce+21LF26lKysLFuwAipb8uCDD5KamoqTkxODBw/m3//+N7fccktHh9LnLV++nKVLl7Jq1SpiY2MJCgrq0PUee+wxli1b1icDna1bt+Lp6dmp11y6dCl33XUXxcXFnXpdIcSp6eudGaTkVfD9rkxumTW4p4fT73Q4QJk9ezbNtVJZunSp3eM77riDO+64o6Nv2y+lpKQQHh7O1KlTe3oodmpra7t9RVRwcHC3vp8QQrRVXpkqTdh6rFAClC7QK2pQupqmaVTWGnvkq7V98K677jruuOMO0tLS0Ol0xMTEsHz5cqZPn46fnx+BgYGcd955pKSk2J134sQJrrjiCgICAvD09GTChAls3ryZpUuX8vjjj7Nr1y50Oh06nc4WLKalpXHBBRfg5eWFj48Pl156KTk5ObZrPvbYY4wdO5a33nqLQYMG4ebm1uzYv//+e/z8/GzLu5OSktDpdPzlL3+xHXPjjTfaTeOtW7eOGTNm4O7uTlRUFHfeeScVFRW21xtP8Rw8eJDp06fj5uZGfHw8K1asQKfTsWzZMruxHD16lDlz5uDh4UFCQgIbN24EYNWqVVx//fWUlJTYfh6PPfYYoHrs3HfffURGRuLp6cnkyZNZtWqV3XWXLl1KdHQ0Hh4eLFy4kIKCgmZ/JkKI/k3TNPLLrQFKEWZzp/U8FRY93qitO1TVmYh/5Oceee/9f5+Ph0vLP+YXXniBwYMH88Ybb7B161YMBgNr1qzhnnvuYcyYMZSXl/PII4+wcOFCkpKS0Ov1lJeXM2vWLCIjI/n2228JCwtjx44dmM1mLrvsMvbu3cvy5ctZsWIFAL6+vpjNZltwsnr1aoxGI7fddhuXXXaZ3YdycnIyX375JV999VWLTcZmzJhBWVkZO3fuZMKECaxevZqgoCC7661evZo///nPgMoUnXXWWfzzn//knXfeIS8vj9tvv53bb7+dd99996Trm0wmLrzwQqKjo9m8eTNlZWXce++9Dsfyt7/9jWeeeYa4uDj+9re/ccUVV5CcnMzUqVN5/vnneeSRRzh06BAAXl5eANx+++3s37+fTz/9lIiICL7++mvOOuss9uzZQ1xcHJs3b+aGG25gyZIlXHjhhSxfvpxHH320xT9TIUT/VVJVR51Js91PzitnaKh3D4+qfzklApS+wNfXF29vbwwGA2FhYQBcfPHFdse88847BAcHs3//fkaNGsXHH39MXl4eW7duJSAgAIAhQ4bYjvfy8sLJycl2PYBff/2VPXv2kJqaamt29/777zNy5Ei2bt3KxIkTATWt8/7777dqqsXX15exY8eyatUqJkyYwKpVq7j77rt5/PHHKS8vp6SkhOTkZGbNmgWopntXXXUVd911FwBxcXG8+OKLzJo1i//+978nZWx+/fVXUlJSWLVqle17eeKJJ5g3b95JY7nvvvs499xzAXj88ccZOXIkycnJDB8+HF9fX3Q6nd3PIy0tjXfffZe0tDQiIiJs11i+fDnvvvsuTz75JC+88AJnnXUWDzzwAABDhw5lw4YNLF++vMWfjRCif7JO71htSS2UAKWTnRIBiruzgf1/n99j791eR44c4ZFHHmHz5s3k5+fbNj5MS0tj1KhRJCUlkZiYaAtOWuPAgQNERUXZdeKNj4/Hz8+PAwcO2AKUgQMHtqkOZNasWaxatYp7772XtWvXsmTJEj7//HPWrVtHYWEhERERxMXFAbBr1y52797NRx99ZDtf0zTMZjOpqamMGDHC7tqHDh0iKirKLrCYNGmSw3GMGTPGdt+6B05ubi7Dhw93ePyePXswmUwMHTrU7vmamhoCAwMB9TNbuHCh3etTpkyRAEWIU1heuX2AsvVYIVefNrCHRtM/nRIBik6na9U0S2+zYMECBg4cyJtvvklERARms5lRo0ZRW1sL1O/30hXauoJm9uzZvPPOO+zatQtnZ2eGDx/O7NmzWbVqFUVFRbbsCail6bfccgt33nnnSdeJjo7u0LidnZ1t962dXJvb0bq8vByDwcD27dtPmsqyTgEJIURj1gyKq5OeGqOZramFPTyi/qfvfWqfIgoKCjh06BBvvvkmM2bMAFRhaUNjxozhrbfeorCw0GEWxcXFxVa4ajVixAjS09NJT0+3ZVH2799PcXEx8fHx7R6vtQ7lP//5jy0YmT17Nv/6178oKiqyqxkZN24c+/fvt5uOas6wYcNIT08nJyeH0NBQQC1DbitHP4/ExERMJhO5ubm2n3NjI0aMYPPmzXbPbdq0qc3vL4ToP/LL1S+K04YEseZwHpkl1ZwoqmSAv2xQ21lOiVU8fZG/vz+BgYG88cYbJCcn89tvv9l6zFhdccUVhIWFceGFF7J+/XqOHj3Kl19+aVu5EhMTY2ucl5+fT01NDXPnzmX06NFcddVV7Nixgy1btrBo0SJmzZrFhAkTOjTeMWPG8NFHHzF79mwAZs6cyY4dOzh8+LBdBuXPf/4zGzZs4PbbbycpKYkjR47wzTffcPvttzu89rx58xg8eDDXXnstu3fvZv369Tz00ENA2/a7iYmJoby8nJUrV5Kfn09lZSVDhw7lqquuYtGiRXz11VekpqayZcsWlixZwg8//ADAnXfeyfLly3nmmWc4cuQIL7/8skzvCHGKs2ZQogM8GBnpC6hpHtF5JEDppfR6PZ9++inbt29n1KhR3H333Tz99NN2x7i4uPDLL78QEhLCOeecw+jRo/nXv/5lm6q4+OKLOeuss5gzZw7BwcF88skn6HQ6vvnmG/z9/Zk5cyZz584lNjaWzz77rMNjnjVrFiaTyRagBAQEEB8fT1hYGMOGDbMdN2bMGFavXs3hw4eZMWMGiYmJPPLII7Yi1cYMBgPLli2jvLyciRMncuONN/K3v/0NoMUl0A1NnTqVxYsXc9lllxEcHMxTTz0FwLvvvsuiRYu49957GTZsGBdeeCFbt261TTeddtppvPnmm7zwwgskJCTwyy+/2AIkIcSpybrEONjblZERPgCk5lU0d0qv8Ph3+7j6rc2UVPX+XdZ1WmsbdfQypaWl+Pr6UlJSgo+Pj91r1dXVpKamtqqHh+ib1q9fz/Tp00lOTmbw4N7ZIEn+HgrRf137zhZWH87jqYvHcKKokhd/S+bq06L554Wje3poTaqqNRH/6HI0Dc4bE85LVyT2yK7rzX1+NyQ1KKJP+Prrr/Hy8iIuLo7k5GT+9Kc/MW3atF4bnAgh+jdrBiXI24XKWiMAhRW1PTmkFqXklWNNSXy/O4uZccFcOjGq+ZN6kEzxiBalpaXh5eXV5FfDvZa6SllZGbfddhvDhw/nuuuuY+LEiXzzzTdd/r5CCOGItQYl2MuNAC9XAArKe3eAcjinDAAXg/rof/TbfWT24o0OJYMiWhQREdHshoNN1Y50pkWLFtntii2EED3FbNYosGRLgrxdKK1W9Ry9PYNyOKccgEsmDGBvRgm7T5Sw8mAu1/TS/i0SoIgWOTk5tXpJsBBC9HdFlbWYLHvvBHq6UlzZNwKUI5YMyvAwb0K93dh9ooTNRwskQBFCCCH6A2sPFD8PZ1yc9AR6qt3eiyprMZs19PruLzxtjcO5KkCJC/HGWhu7JbUQTdN6pFi2JVKDIoQQQrRBff2Jqj3xtwQoZg2Ke+ny3YoaI+mFqt5kaKgXY6P8cDHoyS2r4VhBZQ+PzjEJUIQQQog2aNgDBcDZoMfHTU1IFFbUNHleT0rOVfUngZ4uBHq54uZsYGyUHwBbUgt6cGRNkwBFCCGEaANrBiXIkkEBCLBkUQoremcGxbqCp+GOy5MGqS1SNh/tnR1wJUARQggh2qBxBgUaBii9M4NyxJJBGRpavwnq5FhLgNJLNzqUAEU4pNPpWLZsWbe/76pVq9DpdBQXF7f6nMcee4yxY8d22Zgamz17NnfddVe3vZ8QondxnEGx9ELppSt5rBmUuAYZlHHR/hj0OjKKqzhR1PvqUCRAEb3K1KlTycrKwtfXt1OvK0GFEKKz5FkyKEONh+C3f4KxxraSp7CXNms7kmPNoNQHKJ6uToy2bHS4pRdmUSRAEb2Ki4sLYWFhvXLJmxBCQH0GZdzh52HN07DjfQK8VIDSGzMo5TVGMorrV/A0NLkX16GcGgGKpkFtRc98tXEvRrPZzJIlSxg0aBDu7u4kJCTwxRdf2F7/8ccfGTp0KO7u7syZM4elS5faTYk4mu54/vnniYmJsT3eunUr8+bNIygoCF9fX2bNmsWOHTva9aO95JJLuP32222P77rrLnQ6HQcPHgSgtrYWT09PVqxY0arvz9EUz5tvvklUVBQeHh4sXLiQ5557Dj8/v5PG8sEHHxATE4Ovry+XX345ZWUqpXndddexevVqXnjhBXQ6HTqdjmPHjgGwd+9ezj77bLy8vAgNDeWaa64hPz/fds2KigoWLVqEl5cX4eHhPPvss+36OQkh+g9rHxTPqkz1xIHv6jMoPRSgVNeZmnzN2qAtxNsVPw8Xu9esdShbjvW+AOXUaNRWVwlPdn07dof+mgkunq0+fMmSJXz44Ye89tprxMXFsWbNGq6++mqCg4OJjY3loosu4rbbbuPmm29m27Zt3HvvvW0eUllZGddeey0vvfQSmqbx7LPPcs4553DkyBG8vb1bvkADs2bN4vXXX7c9Xr16NUFBQaxatYrhw4ezdetW6urqmDp1aovf36xZs066/vr161m8eDH//ve/Of/881mxYgUPP/zwScelpKSwbNkyvv/+e4qKirj00kv517/+xRNPPMELL7zA4cOHGTVqFH//+98BCA4Opri4mNNPP50bb7yR//znP1RVVfHnP/+ZSy+9lN9++w2A+++/n9WrV/PNN98QEhLCX//6V3bs2NGtNS9CiN7DZNYshbAazpU56slj6wgdpmo4eiJAeeX3ZJ795RD/ungMl044efM/Ryt4rMYPDECvg9T8CrakFtpW9vQGp0aA0kfU1NTw5JNPsmLFCqZMmQJAbGws69at4/XXXycmJobBgwfbfosfNmwYe/bs4d///neb3uf000+3e/zGG2/g5+fH6tWrOe+889p0rdmzZ/OnP/2JvLw8nJyc2L9/Pw8//DCrVq1i8eLFrFq1iokTJ+Lh4dHi9+coQHnppZc4++yzue+++wAYOnQoGzZs4Pvvv7c7zmw2s3TpUluAdc0117By5UqeeOIJfH19cXFxwcPDg7CwMNs5L7/8MomJiTz55JO259555x2ioqI4fPgwERERvP3223z44YecccYZALz33nsMGDCgTT8jIUT/UVhRi1kDf105OpMlGNFMDCneAER2+xRPcm45T/98CIAHvtjNtmOF3DxzMENC6qdyrHvwxDWa3gHwdXfmonED+GL7Ce78ZCc/3DmdwAbFvz3p1AhQnD1UJqOn3ruVkpOTqaysZN68eXbP19bWkpiYSFVVFZMnT7Z7zfpB3xY5OTk89NBDrFq1itzcXEwmE5WVle3alXjUqFEEBASwevVqXFxcSExM5LzzzuOVV14BVEZl9uzZrfr+HDl06BALFy60e27SpEknBSgxMTF22Z/w8HByc3ObHfuuXbv4/fff8fI6+R9tSkoKVVVV1NbW2v3MAwICGDZsWLPXFUL0X9b6k6Hu5WCufz4iawVwLUXdGKBomsaj3+61e+7zbSf43/YTXD4xiicXjkan07E/s1SN2UEGBeDx80eyM62IlLwK7v58F0uvm9gr2vWfGgGKTtemaZaeUl6uotwffviByMhIu9dcXV258847W7yGXq9Ha1T3Uldn3zjo2muvpaCggBdeeIGBAwfi6urKlClT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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "pd.concat(\n",
    "    {\n",
    "        \"factor_weighted\": factor_cumulative_returns(alphalens_data, period=\"5D\"),\n",
    "        \"equal_weighted\": factor_cumulative_returns(\n",
    "            alphalens_data, period=\"5D\", equal_weight=True\n",
    "        ),\n",
    "    },\n",
    "    axis=1,\n",
    ").plot()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8dc870d5",
   "metadata": {},
   "source": [
    "Calculate and display mean return by quantile"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "364fecbf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>5D</th>\n",
       "      <th>10D</th>\n",
       "      <th>21D</th>\n",
       "      <th>63D</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>factor_quantile</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-0.000195</td>\n",
       "      <td>-0.000131</td>\n",
       "      <td>0.000618</td>\n",
       "      <td>-0.001325</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-0.000024</td>\n",
       "      <td>-0.001480</td>\n",
       "      <td>-0.002455</td>\n",
       "      <td>-0.002777</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-0.000637</td>\n",
       "      <td>-0.001633</td>\n",
       "      <td>-0.001494</td>\n",
       "      <td>-0.003197</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-0.000208</td>\n",
       "      <td>0.000304</td>\n",
       "      <td>-0.000007</td>\n",
       "      <td>0.001897</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.001063</td>\n",
       "      <td>0.002940</td>\n",
       "      <td>0.003341</td>\n",
       "      <td>0.005413</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                       5D       10D       21D       63D\n",
       "factor_quantile                                        \n",
       "1               -0.000195 -0.000131  0.000618 -0.001325\n",
       "2               -0.000024 -0.001480 -0.002455 -0.002777\n",
       "3               -0.000637 -0.001633 -0.001494 -0.003197\n",
       "4               -0.000208  0.000304 -0.000007  0.001897\n",
       "5                0.001063  0.002940  0.003341  0.005413"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "mean_returns, std_err = mean_return_by_quantile(alphalens_data)\n",
    "mean_returns.plot.bar()\n",
    "display(mean_returns)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3d8df921",
   "metadata": {},
   "source": [
    "Calculate mean returns by date and display return difference"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "b0abd55f",
   "metadata": {},
   "outputs": [],
   "source": [
    "mean_returns_by_date, _ = mean_return_by_quantile(alphalens_data, by_date=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "4879f516",
   "metadata": {},
   "outputs": [],
   "source": [
    "mean_return_difference, _ = compute_mean_returns_spread(\n",
    "    mean_returns=mean_returns_by_date,\n",
    "    upper_quant=1,\n",
    "    lower_quant=5,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "c03c8951",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Axes: xlabel='date'>"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHcCAYAAAA+1hWTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA/80lEQVR4nO3de1yUdd7/8fcMMOCBQ6iIB06VG1h5wkRcy0wSyy0ta621NCMtV6y01dXWzLQNS02zw/qwNlvbXL2987bScjNNW4s0MfOXpzxguOHgKcBDAsr390e3czsrmA5cwnC9no/HPIq5rus9n0theHvNdc04jDFGAAAANuKs6QEAAAAuNQoQAACwHQoQAACwHQoQAACwHQoQAACwHQoQAACwHQoQAACwncCaHqC2Ki8vV35+vkJDQ+VwOGp6HAAAcAGMMTp69KiaN28up7Py4zwUoErk5+crJiampscAAAA+2Ldvn1q2bFnpcgpQJUJDQyX9/AcYFhZWw9MAAIALUVxcrJiYGM/v8cpQgCpx5mWvsLAwChAAAH7ml05f4SRoAABgOxQgAABgOxQgAABgO5wDBACAHzh9+rTKyspqeowaFxQUpICAgCrnUIAAAKjFjDFyu90qLCys6VFqjYiICEVHR1fpffooQAAA1GJnyk9UVJTq169v6zfnNcboxIkTOnDggCSpWbNmPmdRgAAAqKVOnz7tKT+NGjWq6XFqhXr16kmSDhw4oKioKJ9fDuMkaAAAaqkz5/zUr1+/hiepXc78eVTlnCgKEAAAtZydX/aqSHX8eVCAAACA7VCAAACA7XASNAAAfih+7LJL+nh7p/S+pI9nNY4AAQCAajdx4kQ5HA6vW2Jiomd5fHy85/569eopPj5ev/3tb7Vq1apLMh8FCAAAWOLqq6/W/v37Pbe1a9d6LZ80aZL279+vHTt2aN68eYqIiFBaWpr+/Oc/Wz4bL4H54GIPO9a1w4YAAFyIwMBARUdHV7o8NDTUszw2NlY33HCDmjVrpgkTJuiuu+7SVVddZdlsHAECAACW2Llzp5o3b67LL79cAwYMUF5e3i9u89hjj8kYo/fee8/S2ShAAACg2qWkpOitt97S8uXL9Ze//EW5ubm6/vrrdfTo0fNuFxkZqaioKO3du9fS+XgJDAAAVLtbbrnF8/9t2rRRSkqK4uLi9F//9V/KyMg477bGGMvf/JEjQAAAwHIRERH61a9+pV27dp13vcOHD+vgwYNKSEiwdB4KEAAAsNyxY8e0e/fuX/wE95deeklOp1N9+/a1dB5eAgMAANXuD3/4g2677TbFxcUpPz9fTz/9tAICAnTvvfd61jl69KjcbrfKysqUm5urv//973rjjTeUlZWlK6+80tL5KEAAAPih2v4WK//+979177336vDhw2rSpIm6du2qL7/8Uk2aNPGsM2HCBE2YMEEul0vR0dHq3LmzVq5cqe7du1s+HwUIAABUuwULFpx3udVXef0SzgECAAC2QwECAAC2QwECAAC2QwECAAC2QwECAKCWKy8vr+kRapXq+PPgKjAAAGopl8slp9Op/Px8NWnSRC6Xy/KPiKjNjDEqLS3VwYMH5XQ65XK5fM6iAAEAUEs5nU4lJCRo//79ys/Pr+lxao369esrNjZWTqfvL2RRgAAAqMVcLpdiY2N16tQpnT59uqbHqXEBAQEKDAys8pEwChAAALWcw+FQUFCQgoKCanqUOoOToAEAgO1QgAAAgO1QgAAAgO1ckgL06quvKj4+XiEhIUpJSdH69evPu/6iRYuUmJiokJAQXXvttfrwww+9li9evFg9e/ZUo0aN5HA4tGnTpnMyTp48qeHDh6tRo0Zq2LCh+vXrp4KCgurcLQAA4KcsL0ALFy7UqFGj9PTTT2vjxo1q27at0tPTdeDAgQrX/+KLL3TvvfcqIyNDX3/9tfr27au+ffvq22+/9axz/Phxde3aVc8//3yljzty5Eh98MEHWrRokdasWaP8/Hzdeeed1b5/AADA/ziMMcbKB0hJSdF1112nV155RdLP794YExOjESNGaOzYsees379/fx0/flxLly713Ne5c2e1a9dOs2fP9lp37969SkhI0Ndff6127dp57i8qKlKTJk00f/583XXXXZKk7du3KykpSdnZ2ercufMvzl1cXKzw8HAVFRUpLCzMa1n82GUXvP+StHdK74taHwAA+OZ8v7/PZukRoNLSUuXk5CgtLe3/HtDpVFpamrKzsyvcJjs722t9SUpPT690/Yrk5OSorKzMKycxMVGxsbGV5pSUlKi4uNjrBgAA6iZLC9ChQ4d0+vRpNW3a1Ov+pk2byu12V7iN2+2+qPUry3C5XIqIiLjgnKysLIWHh3tuMTExF/x4AADAv3AV2P8aN26cioqK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mjhxolwulycvKipKERERFzRvSUmJSkpKPF8XFxdXYe8BAEBtZtkRoOzsbEVERHjKjySlpaXJ6XRq3bp1FW6Tk5OjsrIypaWlee5LTExUbGyssrOzPbnXXnutmjZt6lknPT1dxcXF2rJli1deu3bt1KxZM9188836/PPPzztvVlaWwsPDPbeYmJiL3mcAAOAfLCtAbrf7nJecAgMDFRkZWem5OG63Wy6X65yjNk2bNvVs43a7vcrPmeVnlklSs2bNNHv2bL377rt69913FRMToxtvvFEbN26sdN5x48apqKjIc9u3b99F7S8AAPAfF/0S2NixY/X888+fd51t27b5PFB1uOqqq3TVVVd5vu7SpYt2796tGTNm6O23365wm+DgYAUHB1+qEQH8Ly71BlATLroAPfHEE3rggQfOu87ll1+u6OhoHThwwOv+U6dO6ciRI4qOjq5wu+joaJWWlqqwsNDrKFBBQYFnm+joaK1fv95ruzNXiVWWK0mdOnXS2rVrzzs3AACwh4suQE2aNFGTJk1+cb3U1FQVFhYqJydHycnJkqRVq1apvLxcKSkpFW6TnJysoKAgrVy5Uv369ZP085VceXl5Sk1N9eT++c9/1oEDBzwvsa1YsUJhYWFq3bp1pfNs2rRJzZo1u6h9BQAA3urKUVvLrgJLSkpSr169NGTIEM2ePVtlZWXKzMzUPffc47kC7IcfflCPHj00b948derUSeHh4crIyNCoUaMUGRmpsLAwjRgxQqmpqercubMkqWfPnmrdurXuv/9+vfDCC3K73Ro/fryGDx/ueQlr5syZSkhI0NVXX62TJ0/qjTfe0KpVq/Txxx9btbsAAMCPWPpRGO+8844yMzPVo0cPOZ1O9evXT7NmzfIsLysr044dO3TixAnPfTNmzPCsW1JSovT0dL322mue5QEBAVq6dKmGDRum1NRUNWjQQIMGDdKkSZM865SWluqJJ57QDz/8oPr166tNmzb65JNP1L17dyt3FwAA+AlLC1BkZKTmz59f6fL4+HgZY7zuCwkJ0auvvqpXX3210u3i4uL04YcfVrp8zJgxGjNmzMUPDAAAbIHPAgMAALZDAQIAALZDAQIAALZDAQIAALZDAQIAALZDAQIAALZDAQIAALZDAQIAALZDAQIAALZDAQIAALZDAQIAALZDAQIAALZDAQIAALZDAQIAALZDAQIAALZDAQIAALZDAQIAALZDAQIAALZDAQIAALZDAQIAALZDAQIAALZDAQIAALZDAQIAALZDAQIAALYTWNMDALXF3im9a3oEAMAlwhEgAABgOxQgAABgOxQgAABgOxQgAABgOxQgAABgOxQgAABgOxQgAABgOxQgAABgOxQgAABgOxQgAABgOxQgAABgOxQgAABgOxQgAABgOxQgAABgOxQgAABgOxQgAABgOxQgAABgOxQgAABgOxQgAABgO5YVoCNHjmjAgAEKCwtTRESEMjIydOzYsfNuc/LkSQ0fPlyNGjVSw4YN1a9fPxUUFHit8+ijjyo5OVnBwcFq165dhTmbN2/W9ddfr5CQEMXExOiFF16ort0CAAB1gGUFaMCAAdqyZYtWrFihpUuX6rPPPtPQoUPPu83IkSP1wQcfaNGiRVqzZo3y8/N15513nrPegw8+qP79+1eYUVxcrJ49eyouLk45OTmaOnWqJk6cqDlz5lTLfgEAAP8XaEXotm3btHz5cn311Vfq2LGjJOnll1/WrbfeqmnTpql58+bnbFNUVKS//vWvmj9/vm666SZJ0ty5c5WUlKQvv/xSnTt3liTNmjVLknTw4EFt3rz5nJx33nlHpaWlevPNN+VyuXT11Vdr06ZNevHFF3+xgAEAAHuwpABlZ2crIiLCU34kKS0tTU6nU+vWrdMdd9xxzjY5OTkqKytTWlqa577ExETFxsYqOzvbU4Au5LFvuOEGuVwuz33p6el6/vnn9eOPP+qyyy6rcLuSkhKVlJR4vi4uLr6gxwMA4GLsndK7pkeALHoJzO12Kyoqyuu+wMBARUZGyu12V7qNy+VSRESE1/1NmzatdJvKcpo2bXpOxplllcnKylJ4eLjnFhMTc8GPCQAA/MtFFaCxY8fK4XCc97Z9+3arZrXUuHHjVFRU5Lnt27evpkcCAAAWuaiXwJ544gk98MAD513n8ssvV3R0tA4cOOB1/6lTp3TkyBFFR0dXuF10dLRKS0tVWFjodRSooKCg0m0qy/nPK8fOfH2+nODgYAUHB1/w4wAAAP91UQWoSZMmatKkyS+ul5qaqsLCQuXk5Cg5OVmStGrVKpWXlyslJaXCbZKTkxUUFKSVK1eqX79+kqQdO3YoLy9PqampFzxjamqq/vSnP6msrExBQUGSpBUrVuiqq66q9PwfAABgL5acA5SUlKRevXppyJAhWr9+vT7//HNlZmbqnnvu8VwB9sMPPygxMVHr16+XJIWHhysjI0OjRo3Sp59+qpycHA0ePFipqaleJ0Dv2rVLmzZtktvt1k8//aRNmzZp06ZNKi0tlST97ne/k8vlUkZGhrZs2aKFCxfqpZde0qhRo6zYVQAA4IcsuQpM+vly9MzMTPXo0UNOp1P9+vXzXMIuSWVlZdqxY4dOnDjhuW/GjBmedUtKSpSenq7XXnvNK/ehhx7SmjVrPF+3b99ekpSbm6v4+HiFh4fr448/1vDhw5WcnKzGjRtrwoQJXAIPAAA8HMYYU9ND1EbFxcUKDw9XUVGRwsLCanocSIofu+yi1q9Nl5r68+wA4E8u9Pc3nwUGAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABshwIEAABsJ7CmBwAu1N4pvWt6BABAHcERIAAAYDsUIAAAYDsUIAAAYDsUIAAAYDsUIAAAYDsUIAAAYDsUIAAAYDsUIAAAYDsUIAAAYDuWFaAjR45owIABCgsLU0REhDIyMnTs2LHzbnPy5EkNHz5cjRo1UsOGDdWvXz8VFBR4rfPoo48qOTlZwcHBateu3TkZe/fulcPhOOf25ZdfVufuAQAAP2ZZARowYIC2bNmiFStWaOnSpfrss880dOjQ824zcuRIffDBB1q0aJHWrFmj/Px83Xnnnees9+CDD6p///7nzfrkk0+0f/9+zy05OblK+wMAAOoOSz4LbNu2bVq+fLm++uordezYUZL08ssv69Zbb9W0adPUvHnzc7YpKirSX//6V82fP1833XSTJGnu3LlKSkrSl19+qc6dO0uSZs2aJUk6ePCgNm/eXOkMjRo1UnR0dHXvGgAAqAMsOQKUnZ2tiIgIT/mRpLS0NDmdTq1bt67CbXJyclRWVqa0tDTPfYmJiYqNjVV2dvZFz3D77bcrKipKXbt21fvvv/+L65eUlKi4uNjrBgAA6iZLCpDb7VZUVJTXfYGBgYqMjJTb7a50G5fLpYiICK/7mzZtWuk2FWnYsKGmT5+uRYsWadmyZeratav69u37iyUoKytL4eHhnltMTMwFPyYAAPAvF1WAxo4dW+EJxmfftm/fbtWsF6Rx48YaNWqUUlJSdN1112nKlCm67777NHXq1PNuN27cOBUVFXlu+/btu0QTAwCAS+2izgF64okn9MADD5x3ncsvv1zR0dE6cOCA1/2nTp3SkSNHKj0vJzo6WqWlpSosLPQ6ClRQUFDlc3lSUlK0YsWK864THBys4ODgKj0OAADwDxdVgJo0aaImTZr84nqpqakqLCxUTk6O5+qrVatWqby8XCkpKRVuk5ycrKCgIK1cuVL9+vWTJO3YsUN5eXlKTU29mDHPsWnTJjVr1qxKGQAAoO6w5CqwpKQk9erVS0OGDNHs2bNVVlamzMxM3XPPPZ4rwH744Qf16NFD8+bNU6dOnRQeHq6MjAyNGjVKkZGRCgsL04gRI5Samuq5AkySdu3apWPHjsntduunn37Spk2bJEmtW7eWy+XS3/72N7lcLrVv316StHjxYr355pt64403rNhVAADghywpQJL0zjvvKDMzUz169JDT6VS/fv08l7BLUllZmXbs2KETJ0547psxY4Zn3ZKSEqWnp+u1117zyn3ooYe0Zs0az9dnik5ubq7i4+MlSZMnT9b333+vwMBAJSYmauHChbrrrrus2lUAAOBnHMYYU9ND1EbFxcUKDw9XUVGRwsLCanoc+Ln4scsuav29U3pbNAkA1G0X+vubzwIDAAC2QwECAAC2QwECAAC2QwECAAC2QwECAAC2QwECAAC2QwECAAC2QwECAAC2QwECAAC2QwECAAC2QwECAAC2QwECAAC2QwECAAC2QwECAAC2QwECAAC2QwECAAC2QwECAAC2QwECAAC2QwECAAC2QwECAAC2QwECAAC2QwECAAC2QwECAAC2QwECAAC2QwECAAC2QwECAAC2QwECAAC2QwECAAC2E1jTAwB2sHdK75oeAQBwFo4AAQAA26EAAQAA26EAAQAA26EAAQAA26EAAQAA26EAAQAA26EAAQAA26EAAQAA26EAAQAA26EAAQAA26EAAQAA26EAAQAA26EAAQAA26EAAQAA26EAAQAA2wms6QFqK2OMJKm4uLiGJwEAABfqzO/t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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "mean_return_difference[[\"5D\"]].resample(\"M\").mean().to_period(\"M\").plot.bar()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ec205b36",
   "metadata": {},
   "source": [
    "Calculate and display alpha and beta"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "136e4415",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>5D</th>\n",
       "      <th>10D</th>\n",
       "      <th>21D</th>\n",
       "      <th>63D</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Ann. alpha</th>\n",
       "      <td>0.006204</td>\n",
       "      <td>0.015760</td>\n",
       "      <td>-0.003038</td>\n",
       "      <td>-0.012823</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>beta</th>\n",
       "      <td>0.136634</td>\n",
       "      <td>0.123627</td>\n",
       "      <td>0.117090</td>\n",
       "      <td>0.147144</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                  5D       10D       21D       63D\n",
       "Ann. alpha  0.006204  0.015760 -0.003038 -0.012823\n",
       "beta        0.136634  0.123627  0.117090  0.147144"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "alpha_beta = factor_alpha_beta(alphalens_data)\n",
    "display(alpha_beta)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cd16d71c",
   "metadata": {},
   "source": [
    "**Jason Strimpel** is the founder of <a href='https://pyquantnews.com/'>PyQuant News</a> and co-founder of <a href='https://www.tradeblotter.io/'>Trade Blotter</a>. His career in algorithmic trading spans 20+ years. He previously traded for a Chicago-based hedge fund, was a risk manager at JPMorgan, and managed production risk technology for an energy derivatives trading firm in London. In Singapore, he served as APAC CIO for an agricultural trading firm and built the data science team for a global metals trading firm. Jason holds degrees in Finance and Economics and a Master's in Quantitative Finance from the Illinois Institute of Technology. His career spans America, Europe, and Asia. He shares his expertise through the <a href='https://pyquantnews.com/subscribe-to-the-pyquant-newsletter/'>PyQuant Newsletter</a>, social media, and has taught over 1,000+ algorithmic trading with Python in his popular course **<a href='https://gettingstartedwithpythonforquantfinance.com/'>Getting Started With Python for Quant Finance</a>**. All code is for educational purposes only. Nothing provided here is financial advise. Use at your own risk."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5533ce9c-ebc5-4a68-98dc-8bc7f60ed006",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "jupytext": {
   "cell_metadata_filter": "-all",
   "main_language": "python",
   "notebook_metadata_filter": "-all"
  },
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
